package com.specter.serv.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.specter.mvc.model.Response;
import com.specter.serv.service.AreaService;

/**
 * 行政区划公共服务接口
 *
 * @author Liang.Wang
 * @since 2020-03-15
 * @version 1.0
 */
@RestController("serv-area")
@RequestMapping("/serv/area")
public class AreaController {

	@Autowired
	private AreaService areaService;

	/**
	 * 按照区域码查询详细信息
	 * 
	 * @param areaCode 行政区划码
	 * @return 对应的区划信息
	 */
	@RequestMapping("/show/{areaCode}")
	public Response show(@PathVariable String areaCode) {
		Object area = areaService.show(areaCode);
		return Response.success().data(area);
	}

	/**
	 * 按照区域码查询详细信息
	 * 
	 * @param areaCode 行政区划码
	 * @return 对应的区划信息
	 */
	@RequestMapping("/name/{areaCode}")
	public Response name(@PathVariable String areaCode) {
		String areaName = areaService.name(areaCode);
		return Response.success().data(areaName);
	}

	/**
	 * 查询下级所有区域列表
	 * 
	 * @param areaCode 行政区划码
	 * @return 下级所有的行政区划列表
	 */
	@RequestMapping("/sons/{areaCode}")
	public Response sons(@PathVariable String areaCode) {
		List<?> list = areaService.sons(areaCode);
		return Response.success().data(list);
	}

	/**
	 * 查询下一级所有区域列表
	 * 
	 * @param areaCode 行政区划码
	 * @return 下一级所有的行政区划列表
	 */
	@RequestMapping("/next/{areaCode}")
	public Response next(@PathVariable String areaCode) {
		List<?> list = areaService.next(areaCode);
		return Response.success().data(list);
	}
}
